import baseUrl from '../publicData/baseUrl.js'

// 设置一个请求拦截器
uni.addInterceptor('request', {
	invoke(args) { //拦截前触发
		uni.showLoading({
			title: '正在请求中...',
			mask: true, // 是否显示透明蒙层，避免触摸穿透，默认为false
			duration: 5000
		})
	},
	success(args) { //成功回调拦截
		// Token 失效
		if(args.data.status === 403 && args.data.message === '身份认证失败！'){
		 	uni.removeStorage({
		 		key: 'token'
		 	})
			uni.reLaunch({
				url: '../login/myLogin'
			})	
			return
		}
		
		// 获取成功
		if(args.data.status >= 200 && args.data.status < 300){
			uni.showToast({
				title: '成功',
				icon: 'success',
				duration: 100
			})
		}
	},
	fail() { //失败回调拦截
		uni.showToast({
			title: '请求失败',
			icon: 'error',
		})
	},
})


export default function service(options = {}) {
	return new Promise((resolve, reject) => {
		uni.request({
			url: baseUrl.host + options.url, //仅为示例，并非真实接口地址。
			method: options.method,
			data: options.data,
			header: options.header,
			timeout: 5000,
			success: (res) => {
				resolve(res.data);
			},
			fail: (err) => {
				reject(err)
			}
		})
	})
}